#include "mainwidget.h"

#include <QApplication>

#include"model/data.h"
#include "debug.h"
#include"loginwidget.h"

#include "model/datacenter.h"

FILE* output = nullptr;
void msgHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)//自定义的日志处理内容
{
    (void) type;
    (void) context;
    const QByteArray& log = msg.toUtf8();//日志内容
    fprintf(output, "%s\n", log.constData());
    fflush(output);		// 确保数据落入硬盘
}
int main(int argc, char *argv[])
{
    QApplication::setAttribute(Qt::AA_UseOpenGLES); // 启用 OpenGL
    QApplication a(argc, argv);

#if DEPOLY
    output = fopen("./log.txt", "a");
    qInstallMessageHandler(msgHandler);//注册进来
#endif

    QFile file(":/resource/style.qss");
    file.open(QIODevice::ReadOnly);
    if (file.isOpen())
    {
        QString strFile = file.readAll();
        // 设置整个应用程序的样式表
        a.setStyleSheet(strFile);
        file.close();
    }
    else
    {
        LOG() << "open file failed";
    }
#if TEST_SKIP_LOGIN
    MainWidget *w = MainWidget::getInstance();
    w->show();
#else
    LoginWidget *loginWidget = new LoginWidget(nullptr);//不能创建栈上的，因为关闭的时候会自动调用delete，是不能delete栈上的
    loginWidget->show();
#endif

#if TEST_NETWORK
    // network::NetClient netClient(nullptr);
    // netClient.ping();
    model::DataCenter* dataCenter = model::DataCenter::getInstance();
    dataCenter->ping();
#endif

    // model::DataCenter* dataCenter = model::DataCenter::getInstance();
    // dataCenter->initDataFile();
    return a.exec();
}
